home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / PureBasic / PureBasic_2.32_Demo / Extras / GUI / PBCompiler-GUI.rexx < prev   
Encoding:
OS/2 REXX Batch file  |  2001-01-16  |  15.4 KB  |  465 lines

  1. /* $VER: PBCompiler-GUI.rexx ENG 1.2 (19-Nov-2000) by A.Greve */
  2.  
  3. editor      = 'CED:ed'
  4. sourcepath  = 'PureBasic:Projects/'
  5. quickhelp   = 1
  6. usesettings = 1
  7. forgetwin   = 1
  8. mviewpath   = 'SYS:Utilities/MultiView'
  9. createicon  = 1
  10.  
  11. /**********************************************************/
  12. /**  Don't change the code below these lines, unless     **/
  13. /**  You know what You're doin'...                       **/
  14. /**********************************************************/
  15.  
  16. pbpath   = 'PureBasic:'
  17. compiler = pbpath'Compilers/PBCompiler'
  18. guipath  = pbpath'GUI/PBCompiler-GUI.rexx'
  19. helppath = pbpath'Help/Reference.guide'
  20. guihelp  = pbpath'GUI/PBCompiler-GUI.guide'
  21. iconpath = pbpath'Compilers/Default_Icon.info'
  22.  
  23. new_out = 0
  24. lf = '0a'x; qu = '22'x
  25. srcfile  = ''; exefile = ''; resfile = ''; prio = 0
  26. qh1 = 'Path and filename for the'lf
  27. line1 = '; PBCompiler-GUI settings'
  28.  
  29. IF ~SHOW('L','tritonrexx.library') THEN DO
  30.     IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN DO
  31.         SAY 'Couldn''t open <tritonrexx.library> !'
  32.         EXIT(10)
  33.     END
  34. END
  35. IF ~SHOW('L','rexxtricks.library') THEN DO
  36.     IF ~ADDLIB('rexxtricks.library',10,-30,0) THEN DO
  37.         SAY 'Couldn''t open <rexxtricks.library> !'
  38.         EXIT(10)
  39.     END
  40. END
  41. IF ~SHOW('L','rexxsupport.library') THEN DO
  42.     IF ~ADDLIB('rexxsupport.library',10,-30,0) THEN DO
  43.         SAY 'Couldn''t open <rexxsupport.library> !'
  44.         EXIT(10)
  45.     END
  46. END
  47.  
  48. srcfile = RXTR_GETENV('PureBasic_SourceName')
  49.  
  50. get_ps = RXTR_GETTOOLTYPEVALUE(guipath,'PUBSCREEN')
  51. IF get_ps ~= '' THEN DO
  52.     PubScreen = get_ps
  53.     IF ~RXTR_PUBSCREENTOFRONT(get_ps) THEN DO
  54.         PARSE ARG PubScreen
  55.         IF PubScreen = '' THEN PubScreen = 'Workbench'
  56.     END
  57. END
  58. ELSE DO
  59.     PARSE ARG PubScreen
  60.     IF PubScreen = '' THEN PubScreen = 'Workbench'
  61.     CALL RXTR_PUBSCREENTOFRONT(PubScreen)
  62. END
  63. CALL CLOSE STDOUT
  64. new_out = OPEN(STDOUT, 'CON://640/100/Rx Output/SCREEN 'PubScreen, W)
  65.  
  66. SetVar(1,1,'quickhelp',0)
  67. SetVar(1,0,'editor','ed')
  68. SetVar(1,0,'sourcepath',pbpath)
  69. SetVar(1,1,'usesettings',0)
  70. SetVar(1,1,'forgetwin',0)
  71. SetVar(0,0,'mviewpath','SYS:Utilities/MultiView')
  72. SetVar(1,1,'createicon',0)
  73.  
  74. appname     = 'PBCompiler-GUI'
  75. applongname = 'PBCompiler-GUI ENG - ©2000 by Axel Greve'
  76. appinfo     = 'GUI for the PureBasic compiler'
  77. appversion  = '1.2'
  78. apprelease  = '3'
  79. appdate     = '19-Nov-2000'
  80.  
  81. wintags =    WindowID(1) WindowTitle(appname' ENG 'appversion) WindowPosition('TRWP_CENTERDISPLAY'),
  82.             PubScreenName(PubScreen) QuickHelpOn(quickhelp),
  83.                 'VertGroupA' 'Space',
  84.                     'HorizGroupC' 'Space',
  85.                         TextID("_Sourcefile",11) 'SpaceS' GetFileButton(11),
  86.                         StringGadget(srcfile,12) QuickHelp(qh1"sourcefile (#?.pb)") 'Space',
  87.                     'EndGroup' 'SpaceS',
  88.                     'HorizGroupC' 'Space',
  89.                         TextID("E_xecutable",21) 'SpaceS' GetFileButton(21),
  90.                         StringGadget('',22) QuickHelp(qh1"executable to create") 'Space',
  91.                     'EndGroup' 'SpaceS',
  92.                     'HorizGroupC' 'Space',
  93.                         TextID("Create_Res.",31) 'SpaceS' GetFileButton(31),
  94.                         StringGadget('',32) QuickHelp(qh1"resident file to create") 'Space',
  95.                     'EndGroup' 'SpaceS',
  96.                     'HorizGroupC' 'Space',
  97.                         TextID("_Priority",41) 'SpaceS' ClippedTextBoxMW('   0',42,4),
  98.                         SliderGadget(0,254,127,41) QuickHelp("Priority for the compiler"lf"Usual values: -10 ... +10"),
  99.                         GetEntryButton(43) QuickHelp("Set priority to 0") TextID(" _0",43) 'Space',
  100.                     'EndGroup' 'SpaceS',
  101.                     'HorizGroupC' 'Space',
  102.                         CheckBox(51) TextID(" _Optimizations    ",51) QuickHelp("Enable compiler optimizations for"lf"shorter and faster executables"),
  103.                         'SpaceB' 'SpaceB' 'SpaceB',
  104.                         CheckBox(52) TextID(" MC680_20          ",52) QuickHelp("Enable optimizations"lf"for 020+ executables"),
  105.                     'EndGroup' 'SpaceS',
  106.                     'HorizGroupC' 'Space',
  107.                         CheckBox(61) TextID(" _Debugger         ",61) QuickHelp("Enable debugger support"),
  108.                         'SpaceB' 'SpaceB' 'SpaceB',
  109.                         CheckBox(62) TextID(" NoCo_mment        ",62) QuickHelp("Turn off comments in"lf"the assembler output"),
  110.                     'EndGroup' 'SpaceS',
  111.                     'HorizGroupC' 'Space',
  112.                         CheckBox(71) TextID(" _AmigaOS          ",71) QuickHelp("Load AmigaOS libraries support"),
  113.                         'SpaceB' 'SpaceB' 'SpaceB',
  114.                         CheckBox(72) TextID(" Po_werPC          ",72) QuickHelp("Create PPC executables for WarpOS"),
  115.                     'EndGroup' 'SpaceS',
  116.                     'HorizGroupC' 'Space',
  117.                         CheckBox(81) TextID(" _NoResident       ",81) QuickHelp("Disable resident loading"),
  118.                     'EndGroup' 'Space',
  119.                     'HorizSeparator' 'Space',
  120.                     'HorizGroupC' 'Space',
  121.                         CheckBox(951) TextID(" _Use settings     ",951) QuickHelp("Use GUI settings from the"lf"source directory (*.§§)"),
  122.                         'SpaceB' 'SpaceB' 'SpaceB',
  123.                         CheckBox(952) TextID(" _Forget window    ",952) QuickHelp("Forget window position"lf"after quitting the GUI"),
  124.                     'EndGroup' 'Space',
  125.                     'HorizGroupC' 'Space',
  126.                         CheckBox(953) TextID(" Create _Icon      ",953) QuickHelp("Create an icon for"lf"the executable file"),
  127.                         'SpaceB' 'SpaceB' 'SpaceB',
  128.                         TextID("Stack Si_ze ",954) StringGadget('4096',954) QuickHelp("Presetting"lf"for stack size"),
  129.                         GetEntryButton(955) QuickHelp("Set stack to 4096") TextID(" _4096",955) 'Space',
  130.                     'EndGroup' 'SpaceB',
  131.                     'HorizGroupEC' 'Space',
  132.                         Button("_Compile!",996) QuickHelp("Start compiling") 'Space',
  133.                         Button("_Fake",997) QuickHelp("View compiler call") 'SpaceB' 'SpaceB' TextN(" "),
  134.                         Button("_Edit Src",998) QuickHelp("Edit sourcefile") 'SpaceB' 'SpaceB',
  135.                         Button("Quit",999) QuickHelp("Quit GUI") 'Space',
  136.                     'EndGroup' 'Space',
  137.                 'EndGroup',
  138.             'EndProject'
  139.  
  140. SIGNAL ON break_c
  141. SIGNAL ON failure
  142. SIGNAL ON halt
  143. SIGNAL ON ioerr
  144. SIGNAL ON syntax
  145.  
  146. app =     TR_CREATEAPP('TRCA_Name'     '"'appname'"',
  147.                      'TRCA_LongName' '"'applongname'"',
  148.                      'TRCA_Info'     '"'appinfo'"',
  149.                      'TRCA_Version'  '"'appversion'"',
  150.                      'TRCA_Release'  '"'apprelease'"',
  151.                      'TRCA_Date'     '"'appdate'"',
  152.                      'TAG_END')
  153.  
  154. IF app ~= '00000000'x THEN DO
  155.     win = TR_OPENPROJECT(app,wintags)
  156.     IF win ~= '00000000'x THEN DO
  157.  
  158.         IF usesettings THEN TR_SETATTRIBUTE(win,951,'TRAT_Value',1)
  159.         IF forgetwin   THEN TR_SETATTRIBUTE(win,952,'TRAT_Value',1)
  160.         IF createicon  THEN TR_SETATTRIBUTE(win,953,'TRAT_Value',1)
  161.         ELSE CALL ToggleStack
  162.         IF srcfile ~= '' THEN DO
  163.             TR_SETATTRIBUTE(win,998,'TRAT_Disabled',1)
  164.             IF usesettings THEN CALL LoadSettings
  165.         END
  166.  
  167.         wind = C2D(win)
  168.         ende = 0
  169.         DO WHILE ende ~= 1
  170.             CALL TR_WAIT(app,'')
  171.             DO WHILE TR_HANDLEMSG(app,'event')
  172.  
  173.                 IF event.trm_class = 'TRMS_KEYPRESSED' THEN DO
  174.                     qual = D2C(event.trm_qualifier)
  175.                     code = event.trm_code
  176.                     IF code = 95 & ~BITTST(qual,9) THEN DO
  177.                         IF BITTST(qual,0) | BITTST(qual,1) THEN
  178.                             ADDRESS COMMAND 'Run >NIL: 'qu''mviewpath''qu' 'qu''guihelp''qu' SCREEN'
  179.                         ELSE
  180.                             ADDRESS COMMAND 'Run >NIL: 'qu''mviewpath''qu' 'qu''helppath''qu' SCREEN'
  181.                     END
  182.                 END
  183.  
  184.                 IF event.trm_class = 'TRMS_NEWVALUE' THEN DO
  185.                     id = event.trm_id
  186.                     SELECT
  187.                         WHEN id = 12 THEN DO
  188.                             srcfile = TR_GETATTRIBUTE(win,id,'TROB_String')
  189.                             IF TR_GETATTRIBUTE(win,951,'TRAT_Value') THEN CALL LoadSettings
  190.                         END
  191.                         WHEN id = 22 THEN DO
  192.                             exefile = TR_GETATTRIBUTE(win,id,'TROB_String')
  193.                             CALL LoadStackVal
  194.                         END
  195.                         WHEN id = 32 THEN resfile = TR_GETATTRIBUTE(win,id,'TROB_String')
  196.                         WHEN id = 41 THEN DO
  197.                             prio = event.trm_data - 127
  198.                             TR_SETATTRIBUTE(win,42,'TRAT_Text',RIGHT('   'prio,4))
  199.                         END
  200.                         WHEN id = 952 THEN forgetwin = TR_GETATTRIBUTE(win,id,'TRAT_Value')
  201.                         WHEN id = 953 THEN CALL ToggleStack
  202.                     OTHERWISE
  203.                         NOP
  204.                     END
  205.                 END
  206.  
  207.                 IF event.trm_class = 'TRMS_ACTION' THEN DO
  208.                     id = event.trm_id
  209.                     SELECT
  210.                         WHEN id = 11 | id = 21 | id = 31 THEN CALL Request
  211.                         WHEN id = 43 THEN DO
  212.                             prio = 0
  213.                             TR_SETATTRIBUTE(win,41,'TRAT_Value',127)
  214.                             TR_SETATTRIBUTE(win,42,'TRAT_Text','   0')
  215.                         END
  216.                         WHEN id = 955 THEN TR_SETATTRIBUTE(win,954,'TROB_String','4096')
  217.                         WHEN id = 996 THEN CompileIt(1)
  218.                         WHEN id = 997 THEN CompileIt(0)
  219.                         WHEN id = 998 THEN ADDRESS COMMAND editor' 'qu''srcfile''qu
  220.                         WHEN id = 999 THEN ende = 1
  221.                     OTHERWISE
  222.                         NOP
  223.                     END
  224.                 END
  225.  
  226.                 IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN ende = 1
  227.  
  228.             END
  229.         END
  230.         CALL TR_CLOSEPROJECT(win)
  231.     END
  232.     CALL TR_DELETEAPP(app)
  233. END
  234.  
  235. IF new_out THEN CALL CLOSE STDOUT
  236. IF forgetwin THEN CALL RXTR_UNSETENV('Triton/PBCompiler-GUI.win.1')
  237. EXIT(0)
  238.  
  239. SetVar:
  240.     PARSE ARG CheckTT,Logical,VarName,Default
  241.     IF CheckTT THEN DO
  242.         get_tt = RXTR_GETTOOLTYPEVALUE(guipath,UPPER(VarName))
  243.         IF Logical THEN DO
  244.             IF get_tt ~= '' THEN DO
  245.                 IF get_tt = 'YES' | get_tt = 'ON' | get_tt = '1' THEN INTERPRET VarName' = 1'
  246.                 ELSE INTERPRET VarName' = 0'
  247.             END
  248.         END
  249.         ELSE DO
  250.             IF get_tt ~= '' THEN INTERPRET VarName' = 'get_tt
  251.         END
  252.     END
  253.     IF VALUE(VarName) == UPPER(VarName) THEN INTERPRET VarName' = 'Default
  254. RETURN 0
  255.  
  256. Request:
  257.     sel = LEFT(id, 1)
  258.     pattern = ''
  259.     IF sel = 1 THEN pattern = '#?.pb'
  260.     title = 'Select 'SUBWORD('sourcefile executable residentfile', sel, 1)
  261.     actpath = VALUE(SUBWORD('source source pb', sel, 1)'path')
  262.     bool = ASL_REQUESTFILE(win,fname,"ASLFR_PubScreenName "PubScreen "ASLFR_TitleText "title,
  263.                "ASLFR_RejectIcons" 1 "ASLFR_InitialDrawer" actpath "ASLFR_InitialPattern" pattern)
  264.     IF bool = 1 THEN DO
  265.         TR_SETATTRIBUTE(win,event.trm_id+1,'TROB_String',fname.1)
  266.         SELECT
  267.             WHEN sel = 1 THEN DO
  268.                 srcfile = fname.1
  269.                 IF TR_GETATTRIBUTE(win,951,'TRAT_Value') THEN CALL LoadSettings
  270.             END
  271.             WHEN sel = 2 THEN DO
  272.                 exefile = fname.1
  273.                 CALL LoadStackVal
  274.             END
  275.             WHEN sel = 3 THEN resfile = fname.1
  276.         OTHERWISE
  277.             NOP
  278.         END
  279.     END
  280. RETURN
  281.  
  282. SaveSettings:
  283.     IF EXISTS(srcfile) THEN DO
  284.         IF UPPER(RIGHT(RXTR_FILEPART(srcfile), 3)) == '.PB' THEN DO
  285.             out_txt = line1''lf
  286.             out_txt = out_txt'; This file was created on 'DATE()', 'TIME()'  by PBCompiler-GUI'lf
  287.             out_txt = out_txt'; for the PureBasic source file 'qu''srcfile''qu''lf
  288.             out_txt = out_txt'; Don''t edit this file by hand!!!'lf';'lf
  289.             IF exefile ~= '' THEN out_txt = out_txt'TO='exefile''lf
  290.             IF resfile ~= '' THEN out_txt = out_txt'CR='resfile''lf
  291.             IF TR_GETATTRIBUTE(win,51,'TRAT_Value') THEN out_txt = out_txt'OPT'lf
  292.             IF TR_GETATTRIBUTE(win,52,'TRAT_Value') THEN out_txt = out_txt'MC68020'lf
  293.             IF TR_GETATTRIBUTE(win,61,'TRAT_Value') THEN out_txt = out_txt'DB'lf
  294.             IF TR_GETATTRIBUTE(win,62,'TRAT_Value') THEN out_txt = out_txt'NC'lf
  295.             IF TR_GETATTRIBUTE(win,71,'TRAT_Value') THEN out_txt = out_txt'OS'lf
  296.             IF TR_GETATTRIBUTE(win,72,'TRAT_Value') THEN out_txt = out_txt'PPC'lf
  297.             IF TR_GETATTRIBUTE(win,81,'TRAT_Value') THEN out_txt = out_txt'NR'lf
  298.             out_txt = out_txt'PRI='prio''lf
  299.             out_txt = out_txt'###'
  300.  
  301.             CALL OPEN('outfile', LEFT(srcfile, LENGTH(srcfile) -2)'§§', 'W')
  302.             CALL WRITECH('outfile', out_txt)
  303.             CALL CLOSE('outfile')
  304.             DROP out_txt
  305.         END
  306.     END
  307. RETURN
  308.  
  309. LoadSettings:
  310.     TR_LOCKPROJECT(win)
  311.     IF EXISTS(srcfile) THEN DO
  312.         IF UPPER(RIGHT(RXTR_FILEPART(srcfile), 3)) == '.PB' THEN DO
  313.             CALL RXTR_READFILE(LEFT(srcfile, LENGTH(srcfile) -2)'§§', 'infile')
  314.             IF infile.0 ~= 'INFILE.0' THEN DO
  315.                 IF infile.1 == line1 THEN DO
  316.                     TR_SETATTRIBUTE(win,22,'TROB_String',''); exefile = ''
  317.                     TR_SETATTRIBUTE(win,32,'TROB_String',''); resfile = ''
  318.                     TR_SETATTRIBUTE(win,41,'TRAT_Value',127); TR_SETATTRIBUTE(win,42,'TRAT_Text','   0')
  319.                     TR_SETATTRIBUTE(win,51,'TRAT_Value',0);   TR_SETATTRIBUTE(win,52,'TRAT_Value',0)
  320.                     TR_SETATTRIBUTE(win,61,'TRAT_Value',0);   TR_SETATTRIBUTE(win,62,'TRAT_Value',0)
  321.                     TR_SETATTRIBUTE(win,71,'TRAT_Value',0);   TR_SETATTRIBUTE(win,72,'TRAT_Value',0)
  322.                     TR_SETATTRIBUTE(win,81,'TRAT_Value',0);   prio = 0
  323.  
  324.                     DO i = 2 TO infile.0
  325.                         SELECT
  326.                             WHEN LEFT(infile.i, 3) == 'TO=' THEN DO
  327.                                 exefile = RIGHT(infile.i, LENGTH(infile.i) - 3)
  328.                                 TR_SETATTRIBUTE(win,22,'TROB_String',exefile)
  329.                             END
  330.                             WHEN LEFT(infile.i, 3) == 'CR=' THEN DO
  331.                                 resfile = RIGHT(infile.i, LENGTH(infile.i) - 3)
  332.                                 TR_SETATTRIBUTE(win,32,'TROB_String',resfile)
  333.                             END
  334.                             WHEN LEFT(infile.i, 4) == 'PRI=' THEN DO
  335.                                 prio = RIGHT(infile.i, LENGTH(infile.i) - 4)
  336.                                 TR_SETATTRIBUTE(win,41,'TRAT_Value',127 + prio)
  337.                                 TR_SETATTRIBUTE(win,42,'TRAT_Text',RIGHT('   'prio,4))
  338.                             END
  339.                             WHEN infile.i == 'OPT'     THEN TR_SETATTRIBUTE(win,51,'TRAT_Value',1)
  340.                             WHEN infile.i == 'MC68020' THEN TR_SETATTRIBUTE(win,52,'TRAT_Value',1)
  341.                             WHEN infile.i == 'DB'      THEN TR_SETATTRIBUTE(win,61,'TRAT_Value',1)
  342.                             WHEN infile.i == 'NC'      THEN TR_SETATTRIBUTE(win,62,'TRAT_Value',1)
  343.                             WHEN infile.i == 'OS'      THEN TR_SETATTRIBUTE(win,71,'TRAT_Value',1)
  344.                             WHEN infile.i == 'PPC'     THEN TR_SETATTRIBUTE(win,72,'TRAT_Value',1)
  345.                             WHEN infile.i == 'NR'      THEN TR_SETATTRIBUTE(win,81,'TRAT_Value',1)
  346.                             WHEN infile.i == '###'     THEN LEAVE
  347.                         OTHERWISE
  348.                             NOP
  349.                         END
  350.                     END
  351.                 END
  352.             END
  353.         END
  354.     END
  355.     DROP infile.
  356.     TR_UNLOCKPROJECT(win)
  357. RETURN
  358.  
  359. CompileIt:
  360.     PARSE ARG RealMode
  361.     TR_LOCKPROJECT(win)
  362.  
  363.     opts = qu''srcfile''qu
  364.     IF exefile ~= '' THEN opts = opts' TO='qu''exefile''qu
  365.     IF resfile ~= '' THEN opts = opts' CR='qu''resfile''qu
  366.     IF TR_GETATTRIBUTE(win,51,'TRAT_Value') THEN opts = opts' OPT'
  367.     IF TR_GETATTRIBUTE(win,52,'TRAT_Value') THEN opts = opts' MC68020'
  368.     IF TR_GETATTRIBUTE(win,61,'TRAT_Value') THEN opts = opts' DB'
  369.     IF TR_GETATTRIBUTE(win,62,'TRAT_Value') THEN opts = opts' NC'
  370.     IF TR_GETATTRIBUTE(win,71,'TRAT_Value') THEN opts = opts' OS'
  371.     IF TR_GETATTRIBUTE(win,72,'TRAT_Value') THEN opts = opts' PPC'
  372.     IF TR_GETATTRIBUTE(win,81,'TRAT_Value') THEN opts = opts' NR'
  373.     opts = opts' PRI='prio
  374.  
  375.     IF RealMode THEN DO
  376.         IF srcfile = '' THEN DO
  377.             EasyRequester(1,"Please select a PureBasic source!")
  378.             TR_UNLOCKPROJECT(win)
  379.             RETURN 0
  380.         END
  381.  
  382.         flag1 = 0; flag2 = 0; exeprops = ''
  383.         IF TR_GETATTRIBUTE(win,951,'TRAT_Value') THEN CALL SaveSettings
  384.         IF TR_GETATTRIBUTE(win,953,'TRAT_Value') THEN DO
  385.             flag1 = 1
  386.             IF EXISTS(exefile) THEN exeprops = STATEF(exefile)
  387.         END
  388.         ADDRESS COMMAND compiler' 'opts
  389.         SAY '*** Returncode: 'RC
  390.         SAY ''
  391.         IF flag1 THEN DO
  392.             IF exeprops ~= '' THEN DO
  393.                 IF exeprops ~= STATEF(exefile) THEN flag2 = 1
  394.             END
  395.             ELSE flag2 = 1
  396.         END
  397.         IF flag2 THEN DO
  398.             ergo = 1
  399.             IF EXISTS(exefile'.info') THEN DO
  400.                 ergo = EasyRequester(2,"Icon already exists !"lf"Overwrite it ?")
  401.                 IF ergo = 1 THEN
  402.                     ADDRESS COMMAND 'Delete >NIL: 'qu''exefile'.info'qu
  403.             END
  404.             IF ergo = 1 THEN DO
  405.                 ADDRESS COMMAND 'Copy >NIL: 'qu''iconpath''qu' TO 'qu''exefile'.info'qu
  406.                 IF TR_GETATTRIBUTE(win,953,'TRAT_Value') THEN DO
  407.                     tmpstack = TR_GETATTRIBUTE(win,954,'TROB_String')
  408.                     IF DATATYPE(tmpstack,'w') THEN DO
  409.                         IF ~RXTR_SETSTACK(exefile,tmpstack) THEN
  410.                             EasyRequester(1,"Couldn''t enter stack size!")
  411.                     END
  412.                     ELSE EasyRequester(1,"Stack size is no integer value!")
  413.                 END
  414.             END
  415.         END
  416.     END
  417.     ELSE DO
  418.         SAY 'PBCompiler-GUI fake mode:'
  419.         SAY compiler' 'opts
  420.         SAY ''
  421.     END
  422.     TR_UNLOCKPROJECT(win)
  423. RETURN 0
  424.  
  425. ToggleStack:
  426.     stackdis = ABS(TR_GETATTRIBUTE(win,953,'TRAT_Value') - 1)
  427.     TR_SETATTRIBUTE(win,954,'TRAT_Disabled',stackdis)
  428.     TR_SETATTRIBUTE(win,955,'TRAT_Disabled',stackdis)
  429. RETURN 0
  430.  
  431. LoadStackVal:
  432.     IF EXISTS(exefile'.info') THEN DO
  433.         xstack = RXTR_GETSTACK(exefile)
  434.         IF xstack ~= '' THEN TR_SETATTRIBUTE(win,954,'TROB_String',xstack)
  435.     END
  436. RETURN 0
  437.  
  438. EasyRequester:
  439.     PARSE ARG typ,bodytext
  440.     IF typ = 1 THEN DO
  441.         buttontext = '  O K  '
  442.         easytitle = 'PBCompiler-GUI Message'
  443.     END
  444.     ELSE DO
  445.         buttontext = ' Y E S |  N O  '
  446.         easytitle = 'PBCompiler-GUI Request'
  447.     END
  448.     easyergo = TR_EASYREQUEST(app,bodytext,buttontext,"TREZ_Title" '"'easytitle'"' "TREZ_LockProject" wind)
  449.     IF typ = 1 THEN easyergo = 0
  450. RETURN easyergo
  451.  
  452. break_c:
  453. failure:
  454. halt:
  455. ioerr:
  456. syntax:
  457.     SAY '+++ Error' rc 'in line' sigl '-' ERRORTEXT(rc)
  458.     SAY SOURCELINE(sigl)
  459.     IF app ~= '00000000'x THEN CALL TR_DELETEAPP(app)
  460.     IF new_out THEN DO
  461.         DELAY(250)
  462.         CALL CLOSE STDOUT
  463.     END
  464.     EXIT(10)
  465.